The present invention is directed to network communications.
A communications network such as network 100 of FIG. 1 may include a plurality of stations or nodes (nodes A-F) coupled by transmission media (e.g., cable wire or optical fiber) providing a path for the transmission of data (e.g., E-mail, video, multimedia, or voice) between two or more nodes (e.g. transmission media 140 between nodes A and B, and transmission media 141 between nodes B and C). The data can be transferred in accordance with a network protocol (e.g., Internet Protocol (IP), asynchronous transfer mode (ATM), or synchronous optical network/synchronous digital hierarchy (SONET/SDH)) over optical transmission media. The network 100 may include one or more central nodes and one or more branch nodes connected by an inner ring 126 and an outer ring 146. In this type of network configuration (a dual-ring topology), data can be transmitted from a source node to a destination node (often through intermediary nodes) by transmitting data along one of the two rings (e.g., inner ring 126 and outer ring 146), where the rings have traffic flowing in opposing directions (clockwise direction 110 or counterclockwise direction 111). Control information can be routed in a direction opposite the control information's respective data. As data enters each successive node, local data is split off and transit data passes through the node along the ring. In addition, local data may be added at each node, integrated with the transit data and forwarded on a respective ring to a next node in the network.
In a conventional network using a dual-ring topology, the network can become congested for a variety of reasons. Nodes may oversubscribe and add or forward more data than is expected. Congestion on one ring can in turn cause congestion on the other ring. Congestion management on a conventional network includes the use of logic to monitor and control congestion issues.
FIG. 2 shows an example of a node of FIG. 1 in more detail, showing only the outer ring path. Data is received in the node (e.g., node B) along a transmission media (e.g., transmission media 140 of outer ring 146 (FIG. 1)). The data received is generally in packet format, where each packet has a header, indicating source and destination information. Data packets are routed through physical layer 250, into line card 200 and received by lookup block 210 along path 260. Lookup block 210 includes a lookup table. Lookup block 210 uses the destination information in the packet header to determine if the packet is destined for the host 211 (local traffic) or destined for the outer ring 146 (transit traffic). Local traffic is forwarded to the host 211 via output 273.
The lookup block 210 also performs a forwarding function, forwarding transit traffic to a local buffer, SRAM (Static Random Access Memory) 220. SRAM 220 can include two transit queues (not shown)—a high priority transit queue and a low priority transit queue.
A Spatial Reuse Protocol Forwarding (SRPF) block 230 arbitrates between the transit traffic stored in SRAM 220 and the host data received at input 274 (transmit traffic), multiplexing the transit traffic and host data using SRP fairness logic, such as the fairness logic described in “The Cisco SRP MAC Layer Protocol”, by Tsiang and Suwala, RFC 2892 (August 2000). The SRP fairness logic is a transmission control logic, which attempts to ensure that nodes get equal usage. The SRP fairness logic determines if a node is sourcing or forwarding an excessive amount of traffic and either imposes rate controls and/or originates and propagates fairness information, requesting that an immediately upstream node adjust its transmission rate. The logic can also be used to prioritize packets and expedite the handling of priority packets. Each node A-F of FIG. 1 can use SRP fairness logic to monitor the number of packets sourced and forwarded by the inner and outer rings 126 and 146. Forwarded packets at node B are routed on path 261 through physical layer 255 and back onto outer ring 146 along a transmission media (e.g., transmission media 141 of outer ring 146).
When a node is forwarding an excessive amount of transit traffic, the node may communicate its derived usage information to an immediately upstream node via the opposite ring. The upstream node may then adjust its transmission rate (e.g., stop adding data at the upstream node from the upstream node's host to a congested ring). However, in the conventional systems proposed, the usage information provided by a downstream node is limited. As described above, the usage information is used to determine when the upstream node should stop forwarding transmit traffic from the host. To do such, each node is required to include a transmit traffic buffer that is sufficiently sized to allow for the temporary stoppage without losing data. In conventional systems, these transmit buffers can be quite large due in part to the amount of time that may be required to hold traffic while congestion clears. Unfortunately, conventional systems provide no means to share the load among a group of nodes so as to be able to limit the size of the buffer required in any one single node. Further, the usage information and fairness logic previously proposed does not provide any guarantees that a node will be able to be provisioned at its appropriate rate. Congestion that is caused by one node on the network may result in an unfair burden on other nodes. Still further, the previously proposed systems only provide means for limiting when host data is to be added to a given ring. In these types of systems, the usage information received from a downstream node provides no capability to limit the forward rate at which traffic is forwarded through an upstream node.